// 引入api
import { reqGoodsInfo, reqAddOrUpdateShopCart } from '@/api'
import { getUUID } from '@/utils/uuid_token'
const state = {
    // 初始值为空
    goodInfo: {},
    // 游客临时身份
    uuid_token: getUUID()
}
const mutations = {
    GETGOODINFO(state, goodInfo) {
        state.goodInfo = goodInfo
    }
}
const actions = {
    // 获取产品信息的action
    async getGoodInfo({ commit }, skuId) {
        let result = await reqGoodsInfo(skuId);
        if (result.code == 200) {
            commit('GETGOODINFO', result.data)
        }
    },
    // 将产品添加到购物车中
    async addOrUpdateShopCart({ commit }, { skuId, skuNum }) {
        // 因为没有返回数据 不需要三连环
        let result = await reqAddOrUpdateShopCart(skuId, skuNum)
        // 请求成功进行路由跳转到购物车页面
        if (result.code == 200) {
            // 返回的是成功的标记
            return "OK";
        } else {
            // 返回失败的标记
            return Promise.reject(new Error("faile"));
        }
    }
}
// 简化state数据
const getters = {
    // 路径导航简化的数据
    categoryView() {
        // 因为goodInfo的初始值为空 当数据为空时会报错
        return state.goodInfo.categoryView || {}
    },
    // 简化产品信息的数据
    skuInfo(state) {
        // 因为goodInfo的初始值为空 当数据为空时会报错
        return state.goodInfo.skuInfo || {}
    },
    // 简化产品售卖属性的信息
    spuSaleAttrList(state) {
        return state.goodInfo.spuSaleAttrList || []
    }
}

export default {
    state, actions, mutations, getters
}